package spec.lijunyao.unit4.clazz.inherit;

/**
 * 子类
 * 大学生类，专门针对大学生
 */
public class CollegeStudent extends Student {

    private String secondJob;

    /**
     * 在子类的构造方面里面
     * 1.如果子类没有显式的调用父类的构造方法，那么Java会"自动"、"首先"调用父类的默认构造方法
     * 2.如果子类里显式的通过super关键词去调用父类的构造方法，那么super必须放在第一句话
     */
    public CollegeStudent(String xm, String xh, String xx, String secondJob){
        // 子类里通过super可以执行父类的构造方法
//        super(xm, xh, xx);
        System.out.println("运行子类CollegeStudent的构造方法");
        this.secondJob = secondJob;

    }

    @Override
    public String toString() {
        return "CollegeStudent{" +
                "secondJob='" + secondJob + '\'' +
                '}';
    }

    /**
     * 重写，隐藏
     * 父类和子类都有study方法，
     * 通过子类对象调用study方法的话调用的是子类的study方法
     * 对成员变量也适用
     * 重写发生在父类和子类里，重载发生在同一类里面
     */
    String study(){
        return "自学成才!";
    }
}